package com.spsoft.vatoutinv.model.vo.vmsfulloutinvoice;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.CommonConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author wangy
 * @date 2023/12/29 11:02
 */
@Data
public class InvoiceDetailVO {

    /**
     * 发票标题
     */
    private String title;

    /**
     * 购买方名称
     */
    private String gmfmc;

    /**
     * 购买方纳税人识别号
     */
    private String gmfnsrsbh;

    /**
     * 销售方名称
     */
    private String xsfmc;

    /**
     * 销售方纳税人识别号
     */
    private String xsfnsrsbh;

    /**
     * 价税合计 (大写)
     */
    private String jshjdx;

    /**
     * 价税合计 (小写)
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal jshjxx;

    /**
     * 备注
     */
    private String bz;

    /**
     * 开票人
     */
    private String kpr;

    /**
     * 发票号码
     */
    private String fphm;

    /**
     * 开票日期
     */
    @Translate(type = TranslateConstant.DATE, format = CommonConstant.DATE_FORMAT_8_TEXT)
    private Date kprq;

    /**
     * 发票特定要素
     */
    private String fptdys;

    /**
     * 差额税额
     */
    private String cezs;

    /**
     * 发票详细信息
     */
    private List<InvoiceDetailItemVO> items;

}